Skip to content

Conversation

@zxzxwu
Copy link
Collaborator

@zxzxwu zxzxwu commented Sep 17, 2025

Ported from Pigweed without actual retransmission support, because most devices don't perform retransmission at all.

@zxzxwu zxzxwu marked this pull request as draft September 17, 2025 05:45
@zxzxwu zxzxwu force-pushed the l2cap branch 2 times, most recently from 8187bea to 76f636a Compare September 19, 2025 06:01
@zxzxwu zxzxwu force-pushed the l2cap branch 8 times, most recently from 44955d1 to 9cfa0a3 Compare September 26, 2025 17:17
@zxzxwu
Copy link
Collaborator Author

zxzxwu commented Sep 26, 2025

@barbibulle This PR is still WIP, but I would like to have your opinion about the overall design.

@barbibulle
Copy link
Collaborator

@barbibulle This PR is still WIP, but I would like to have your opinion about the overall design.

I'll take a look in the next couple days.

@zxzxwu
Copy link
Collaborator Author

zxzxwu commented Nov 2, 2025

Thanks!

Some summary:

  • Retransmission is not implemented. I am considering introduce an Busy exception allow packet receivers to raise REJ or SREJ, but probably will be another PR.
  • Config negotiation is WIP. I am still figuring out how it works.
  • Using processor classes to handle mode-specific logics. A potential improvement is to allow delegating factory for each mode.
  • Add write() and on_sdu() to allow sending SDU in non-basic modes, but keep the behavior in basic mode.
  • Add FCS support - though this is optional in Enhanced Retransmission mode, many implementations don't allow such combination.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants